<?php

class validate {

	/*
	 * använder regex för att validera emailadresser. 
	 * den kollar att det finns endast ett @
	 * kollar att det finns text innan @-tecknet
	 * kollar att det finns text EFTER @-tecket , sen en punkt och sedan en text igen med två till sju bokstäver.
	 * 
	 */
	public function email($email) {
		$regex = '/^[\w]+(\.[\w]+)*@([\w]+\.)+[a-z]{2,7}$/i';
		
		if(preg_match($regex, $email) == true) {
			return true;
		}
	
		return false;
	}
	
	/*
	 * börja med att ta bort alla bindestreck. 
	 * om strängen är 12 tecken så ska den ta bort de två första tecknen. 
	 * sedan kollar den om det finns 10 siffror
	 * sen körs luhn-algoritmen 
	 * 
	 */
	public function ssn($ssn) {
		
		$ssn = str_replace("-", "", $ssn);

		if(strlen($ssn) == 12) {

			$ssn = substr($ssn, 2);
		}
		
		if(preg_match('/^[0-9]{10}$/', $ssn)) {
		
					$n = 2;
					$sum = 0;
					// Räkna fram kontrollsumman
					for ($i=0; $i<9; $i++) {
						$tmp = $ssn[$i] * $n;
						($tmp > 9) ? $sum += 1 + ($tmp % 10) : $sum += $tmp;
						($n == 2) ? $n = 1 : $n = 2;
					}
					
					return !(($sum + $ssn[9]) % 10);
				
				} 				
		return false;
		
	}

	/*
	 * vi har regex som kollar följande formatering: 
	 * 1999-10-01
		99-10-01
		991001
	 * 
	 */
	public function dateCheck($date) {
	
		$regex[0] = '/^(19|20)[0-9][0-9]-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/';
		$regex[1] = '/^[0-9][0-9]-(0[1-9]|1[012])-(0[1-9]|[12][0-9]|3[01])$/';
		$regex[2] = '/^[0-9][0-9](0[1-9]|1[012])(0[1-9]|[12][0-9]|3[01])$/';
		
		for($i = 0; $i < count($regex); $i++){
			if(preg_match($regex[$i], $date) == true) {
				return true;
			}
		}
		return false;
		
	}

	/*
	 * plockar bort alla taggar.  
	 */
	public function textStrict($text) {
		$text = strip_tags($text);

		return true;
	}
	
	/*
	 * tar bort alla taggar förutom <h1> samt <p>
	 */
	public function text($text) {
		
		$text = strip_tags($text,"<h1>, <p>");
		
		return true;
		
	}

	/*
	 *
	 */
	public function username($username){
		$regex = '/^[a-z0-9\_\-\/\&]{3,15}$/';
		if(strip_tags($username) != $username) {
			return false;	
		}
		
				
		if(preg_match($regex, $username) == true) {
			return true;
		}
		return false;
	}

	/*
	 * kolla så lösenordet är minst 8 tecken långt. 
	 * om vi hittar någon tagg så returerar vi false
	 */
	public function password($pwd) {
//		$regex = '/^.*(?=.{8,16})(?=.*\d)(?=.*[a-z])(?=.*[A-Z]).*$/';
		$regex = '/^.*((\d*.*[A-z]*)|([A-z]*.*\d*)).*$/';
		//$pwd = str_replace('<', '', $pwd);
		//$pwd = str_replace('>', '', $pwd);
		
		if(strip_tags($pwd) != $pwd) {
			return false;	
		}
		
				
		if(preg_match($regex, $pwd) == true) {
			return true;
		}
		return false;
	}
	
	/*
	 *Kollar om det är ett nummer, annars returerar vi false. 
	 */
	public function number($nmr) {
		
		if(is_numeric($nmr)) {
			return true;
		}
		
		return false;
	}
}